12 10
nul <program>
<data_type>
<id>
<int>
<unary_op>
"("
")"
"{"
"}"
";"
"return"
("+"|"-")
("*"|"/")
<program> ::= <function>
<function> ::= <data_type> <id> "(" ")" "{" <statement> "}" 
<statement> ::= "return" <exp> ";"
<exp> ::= <term>
<exp> ::= <exp> ("+"|"-") <term>
<term> ::= <factor>
<term> ::= <term> ("*"|"/") <factor>
<factor> ::= <int>
<factor> ::= <unary_op> <factor>
<factor> ::= "(" <exp> ")"